package com.tools.Fisco;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.fisco.bcos.sdk.abi.FunctionReturnDecoder;
import org.fisco.bcos.sdk.abi.TypeReference;
import org.fisco.bcos.sdk.abi.datatypes.DynamicStruct;
import org.fisco.bcos.sdk.abi.datatypes.Event;
import org.fisco.bcos.sdk.abi.datatypes.Function;
import org.fisco.bcos.sdk.abi.datatypes.Type;
import org.fisco.bcos.sdk.abi.datatypes.Utf8String;
import org.fisco.bcos.sdk.abi.datatypes.generated.Int256;
import org.fisco.bcos.sdk.abi.datatypes.generated.tuples.generated.Tuple1;
import org.fisco.bcos.sdk.client.Client;
import org.fisco.bcos.sdk.contract.Contract;
import org.fisco.bcos.sdk.crypto.CryptoSuite;
import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair;
import org.fisco.bcos.sdk.eventsub.EventCallback;
import org.fisco.bcos.sdk.model.CryptoType;
import org.fisco.bcos.sdk.model.TransactionReceipt;
import org.fisco.bcos.sdk.model.callback.TransactionCallback;
import org.fisco.bcos.sdk.transaction.model.exception.ContractException;

@SuppressWarnings("unchecked")
public class CompanyInfo extends Contract {
    public static final String[] BINARY_ARRAY = {"60806040526040805190810160405280601281526020017f636f6d70616e795f696e666f5f74657374310000000000000000000000000000815250600190805190602001906200005192919062000178565b503480156200005f57600080fd5b506110016000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a60016040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016200011b91906200044a565b602060405180830381600087803b1580156200013657600080fd5b505af11580156200014b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200017191908101906200023d565b50620004b4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001bb57805160ff1916838001178555620001ec565b82800160010185558215620001ec579182015b82811115620001eb578251825591602001919060010190620001ce565b5b509050620001fb9190620001ff565b5090565b6200022491905b808211156200022057600081600090555060010162000206565b5090565b90565b6000620002358251620004aa565b905092915050565b6000602082840312156200025057600080fd5b6000620002608482850162000227565b91505092915050565b600081546001811660008114620002895760018114620002aa57620002ef565b607f600283041680865260ff198316602087015260408601935050620002ef565b60028204808652602086019550620002c28562000498565b60005b82811015620002e657815481890152600182019150602081019050620002c5565b80880195505050505b505092915050565b600060dd82527f6163636f756e742c2070617373776f72642c2062616c616e63652c206163636f60208301527f756e745f7374617475732c206e616d652c2072656769737465725f6163636f7560408301527f6e742c72656769737465725f69642c70686f6e652c636f6d70616e795f63726560608301527f6174655f646174652c556e69666965645f736f6369616c5f6372656469745f6360808301527f6f64652c6372656174655f646174652c207570646174655f646174652c636f6d60a08301527f70616e795f627573696e6573732c636f6d70616e795f696e74726f647563652c60c08301527f636f6d70616e795f616464726573732c636f6d70616e795f656d61696c00000060e083015261010082019050919050565b6000600282527f69640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000606082019050818103600083015262000466818462000269565b905081810360208301526200047b8162000413565b905081810360408301526200049081620002f7565b905092915050565b60008160005260206000209050919050565b6000819050919050565b6137e180620004c46000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806380599e4b14610072578063a3cd6c3b146100af578063b76556d2146100ec578063d7bb3d1c14610129578063fcd7e3c114610154575b600080fd5b34801561007e57600080fd5b5061009960048036036100949190810190612802565b610191565b6040516100a69190612f5a565b60405180910390f35b3480156100bb57600080fd5b506100d660048036036100d19190810190612884565b610474565b6040516100e39190612f5a565b60405180910390f35b3480156100f857600080fd5b50610113600480360361010e9190810190612884565b6110a4565b6040516101209190612f5a565b60405180910390f35b34801561013557600080fd5b5061013e611101565b60405161014b9190612f75565b60405180910390f35b34801561016057600080fd5b5061017b60048036036101769190810190612802565b61119f565b60405161018891906135e5565b60405180910390f35b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c960016040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161020e9190612ff7565b602060405180830381600087803b15801561022857600080fd5b505af115801561023c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061026091908101906127b0565b92508273ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156102c657600080fd5b505af11580156102da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102fe9190810190612735565b91508173ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1866040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016103559190613415565b600060405180830381600087803b15801561036f57600080fd5b505af1158015610383573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166328bb211786846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016103de929190612f97565b602060405180830381600087803b1580156103f857600080fd5b505af115801561040c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061043091908101906127d9565b90507f4b930e280fe29620bdff00c88155d46d6d82a39f45dd5c3ea114dc3157358112816040516104619190612f5a565b60405180910390a1809350505050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c960016040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016104f19190612ff7565b602060405180830381600087803b15801561050b57600080fd5b505af115801561051f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061054391908101906127b0565b92508273ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105a957600080fd5b505af11580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105e19190810190612787565b91508173ffffffffffffffffffffffffffffffffffffffff1663e942b51686600001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161063c91906133e0565b600060405180830381600087803b15801561065657600080fd5b505af115801561066a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b51686602001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016106c79190613514565b600060405180830381600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b51686604001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161075291906134bf565b600060405180830381600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba7486606001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016107dd9190613569565b600060405180830381600087803b1580156107f757600080fd5b505af115801561080b573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba7486608001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161086891906135b7565b600060405180830381600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168660a001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016108f39190613138565b600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168660c001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161097e9190613039565b600060405180830381600087803b15801561099857600080fd5b505af11580156109ac573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168660e001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610a09919061328c565b600060405180830381600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661010001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610a95919061338b565b600060405180830381600087803b158015610aaf57600080fd5b505af1158015610ac3573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661012001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610b21919061318d565b600060405180830381600087803b158015610b3b57600080fd5b","505af1158015610b4f573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661014001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610bad919061346a565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661010001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c39919061338b565b600060405180830381600087803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661016001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610cc59190613237565b600060405180830381600087803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661018001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610d519190613336565b600060405180830381600087803b158015610d6b57600080fd5b505af1158015610d7f573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b516866101a001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610ddd91906131e2565b600060405180830381600087803b158015610df757600080fd5b505af1158015610e0b573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b516866101c001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610e69919061308e565b600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b516866101e001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610ef591906132e1565b600060405180830381600087803b158015610f0f57600080fd5b505af1158015610f23573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661020001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610f8191906130e3565b600060405180830381600087803b158015610f9b57600080fd5b505af1158015610faf573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166331afac368660000151846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161100e929190612fc7565b602060405180830381600087803b15801561102857600080fd5b505af115801561103c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061106091908101906127d9565b90507fc57b01fa77f41df77eaab79a0e2623fab2e7ae3e9530d9b1cab225ad65f2b7ce816040516110919190612f5a565b60405180910390a1809350505050919050565b6000806110b48360000151610191565b90506110bf83610474565b90507f8e5890af40fc24a059396aca2f83d6ce41fcef086876548fa4fb8ec27e9d292a816040516110f09190612f5a565b60405180910390a180915050919050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111975780601f1061116c57610100808354040283529160200191611197565b820191906000526020600020905b81548152906001019060200180831161117a57829003601f168201915b505050505081565b6111a7612242565b60008060006111b4612242565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c960016040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161122e9190612ff7565b602060405180830381600087803b15801561124857600080fd5b505af115801561125c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061128091908101906127b0565b95508573ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061131e9190810190612735565b94508473ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1896040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016113759190613415565b600060405180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663e8434e3989876040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016113fe929190612f97565b602060405180830381600087803b15801561141857600080fd5b505af115801561142c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611450919081019061275e565b9350600091505b8373ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156114bb57600080fd5b505af11580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114f391908101906127d9565b821215612234578373ffffffffffffffffffffffffffffffffffffffff1663846719e0836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161154f9190612f5a565b602060405180830381600087803b15801561156957600080fd5b505af115801561157d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115a19190810190612787565b90508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115f6906133c0565b600060405180830381600087803b15801561161057600080fd5b505af1158015611624573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061164d9190810190612843565b83600001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016116a8906134f4565b600060405180830381600087803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506116ff9190810190612843565b83602001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161175a9061349f565b600060405180830381600087803b15801561177457600080fd5b505af1158015611788573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506117b19190810190612843565b83604001819052508073ffffffffffffffffffffffffffffffffffffffff1663fda69fae6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161180c90613549565b602060405180830381600087803b15801561182657600080fd5b505af115801561183a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061185e91908101906127d9565b8360600181815250508073ffffffffffffffffffffffffffffffffffffffff1663fda69fae6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118ba90613597565b602060405180830381600087803b1580156118d457600080fd5b505af11580156118e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061190c91908101906127d9565b8360800181815250508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161196890613118565b600060405180830381600087803b15801561198257600080fd5b505af1158015611996573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506119bf9190810190612843565b8360a001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611a1a90613019565b600060405180830381600087803b158015611a3457600080fd5b505af1158015611a48573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611a719190810190612843565b8360c001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611acc9061326c565b600060405180830381600087803b158015611ae657600080fd5b505af1158015611afa573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611b239190810190612843565b8360e001819052508073ffffffffffffffffffffffffffff","ffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611b7e9061336b565b600060405180830381600087803b158015611b9857600080fd5b505af1158015611bac573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611bd59190810190612843565b8361010001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611c319061316d565b600060405180830381600087803b158015611c4b57600080fd5b505af1158015611c5f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611c889190810190612843565b8361012001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611ce49061344a565b600060405180830381600087803b158015611cfe57600080fd5b505af1158015611d12573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611d3b9190810190612843565b8361014001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d979061336b565b600060405180830381600087803b158015611db157600080fd5b505af1158015611dc5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611dee9190810190612843565b8361010001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e4a90613217565b600060405180830381600087803b158015611e6457600080fd5b505af1158015611e78573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611ea19190810190612843565b8361016001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611efd90613316565b600060405180830381600087803b158015611f1757600080fd5b505af1158015611f2b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611f549190810190612843565b8361018001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611fb0906131c2565b600060405180830381600087803b158015611fca57600080fd5b505af1158015611fde573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506120079190810190612843565b836101a001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016120639061306e565b600060405180830381600087803b15801561207d57600080fd5b505af1158015612091573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506120ba9190810190612843565b836101c001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401612116906132c1565b600060405180830381600087803b15801561213057600080fd5b505af1158015612144573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061216d9190810190612843565b836101e001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016121c9906130c3565b600060405180830381600087803b1580156121e357600080fd5b505af11580156121f7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506122209190810190612843565b836102000181905250816001019150611457565b829650505050505050919050565b6102206040519081016040528060608152602001606081526020016060815260200160008152602001600081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b60006122d382516136de565b905092915050565b60006122e782516136f0565b905092915050565b60006122fb8251613702565b905092915050565b600061230f8251613714565b905092915050565b60006123238235613726565b905092915050565b60006123378251613726565b905092915050565b600082601f830112151561235257600080fd5b813561236561236082613634565b613607565b9150808252602083016020830185838301111561238157600080fd5b61238c838284613754565b50505092915050565b600082601f83011215156123a857600080fd5b81356123bb6123b682613660565b613607565b915080825260208301602083018583830111156123d757600080fd5b6123e2838284613754565b50505092915050565b600082601f83011215156123fe57600080fd5b815161241161240c82613660565b613607565b9150808252602083016020830185838301111561242d57600080fd5b612438838284613763565b50505092915050565b6000610220828403121561245457600080fd5b61245f610220613607565b9050600082013567ffffffffffffffff81111561247b57600080fd5b6124878482850161233f565b600083015250602082013567ffffffffffffffff8111156124a757600080fd5b6124b38482850161233f565b602083015250604082013567ffffffffffffffff8111156124d357600080fd5b6124df8482850161233f565b60408301525060606124f384828501612317565b606083015250608061250784828501612317565b60808301525060a082013567ffffffffffffffff81111561252757600080fd5b6125338482850161233f565b60a08301525060c082013567ffffffffffffffff81111561255357600080fd5b61255f8482850161233f565b60c08301525060e082013567ffffffffffffffff81111561257f57600080fd5b61258b8482850161233f565b60e08301525061010082013567ffffffffffffffff8111156125ac57600080fd5b6125b88482850161233f565b6101008301525061012082013567ffffffffffffffff8111156125da57600080fd5b6125e68482850161233f565b6101208301525061014082013567ffffffffffffffff81111561260857600080fd5b6126148482850161233f565b6101408301525061016082013567ffffffffffffffff81111561263657600080fd5b6126428482850161233f565b6101608301525061018082013567ffffffffffffffff81111561266457600080fd5b6126708482850161233f565b610180830152506101a082013567ffffffffffffffff81111561269257600080fd5b61269e8482850161233f565b6101a0830152506101c082013567ffffffffffffffff8111156126c057600080fd5b6126cc8482850161233f565b6101c0830152506101e082013567ffffffffffffffff8111156126ee57600080fd5b6126fa8482850161233f565b6101e08301525061020082013567ffffffffffffffff81111561271c57600080fd5b6127288482850161233f565b6102008301525092915050565b60006020828403121561274757600080fd5b6000612755848285016122c7565b91505092915050565b60006020828403121561277057600080fd5b600061277e848285016122db565b91505092915050565b60006020828403121561279957600080fd5b60006127a7848285016122ef565b91505092915050565b6000602082840312156127c257600080fd5b60006127d084828501612303565b91505092915050565b6000602082840312156127eb57600080fd5b60006127f98482850161232b565b91505092915050565b60006020828403121561281457600080fd5b600082013567ffffffffffffffff81111561282e57600080fd5b61283a84828501612395565b91505092915050565b60006020828403121561285557600080fd5b600082015167ffffffffffffffff81111561286f57600080fd5b61287b848285016123eb565b91505092915050565b60006020828403121561289657600080fd5b600082013567ffffffffffffffff8111156128b057600080fd5b6128bc84828501612441565b91505092915050565b6128ce81613730565b82525050565b6128dd81613742565b82525050565b6128ec816136d4565b82525050565b60006128fd826136a9565b808452612911816020860160208601613763565b61291a81613796565b602085010191505092915050565b60006129338261369e565b808452612947816020860160208601613763565b61295081613796565b602085010191505092915050565b60008154600181166000811461297b576001811461299b576129dc565b607f600283041680865260ff1983166020870152604086019350506129dc565b600282048086526020860195506129b18561368c565b60005b828110156129d3578154818901526001820191506020810190506129b4565b80880195505050505b505092915050565b6000601082527f72656769737465725f6163636f756e74000000000000000000000000000000006020830152604082019050919050565b6000601182527f636f6d70616e795f696e74726f647563650000000000000000000000000000006020830152604082019050919050565b6000600d82527f636f6d70616e795f656d61696c000000000000000000000000000000000000006020830152604082019050919050565b6000600482527f6e616d65000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000601382527f636f6d70616e795f6372656174655f64617465000000000000000000000000006020830152604082019050919050565b6000601082527f636f6d70616e795f627573696e657373000000000000000000000000000000006020830152604082019050919050565b6000600b82527f637265617465","5f646174650000000000000000000000000000000000000000006020830152604082019050919050565b6000600b82527f72656769737465725f69640000000000000000000000000000000000000000006020830152604082019050919050565b6000600f82527f636f6d70616e795f6164647265737300000000000000000000000000000000006020830152604082019050919050565b6000600b82527f7570646174655f646174650000000000000000000000000000000000000000006020830152604082019050919050565b6000600582527f70686f6e650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600282527f69640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000601a82527f556e69666965645f736f6369616c5f6372656469745f636f64650000000000006020830152604082019050919050565b6000600882527f70617373776f72640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600782527f6163636f756e74000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600782527f62616c616e6365000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600e82527f6163636f756e745f7374617475730000000000000000000000000000000000006020830152604082019050919050565b6000610220830160008301518482036000860152612da98282612928565b91505060208301518482036020860152612dc38282612928565b91505060408301518482036040860152612ddd8282612928565b9150506060830151612df260608601826128e3565b506080830151612e0560808601826128e3565b5060a083015184820360a0860152612e1d8282612928565b91505060c083015184820360c0860152612e378282612928565b91505060e083015184820360e0860152612e518282612928565b915050610100830151848203610100860152612e6d8282612928565b915050610120830151848203610120860152612e898282612928565b915050610140830151848203610140860152612ea58282612928565b915050610160830151848203610160860152612ec18282612928565b915050610180830151848203610180860152612edd8282612928565b9150506101a08301518482036101a0860152612ef98282612928565b9150506101c08301518482036101c0860152612f158282612928565b9150506101e08301518482036101e0860152612f318282612928565b915050610200830151848203610200860152612f4d8282612928565b9150508091505092915050565b6000602082019050612f6f60008301846128e3565b92915050565b60006020820190508181036000830152612f8f8184612928565b905092915050565b60006040820190508181036000830152612fb181856128f2565b9050612fc060208301846128c5565b9392505050565b60006040820190508181036000830152612fe18185612928565b9050612ff060208301846128d4565b9392505050565b60006020820190508181036000830152613011818461295e565b905092915050565b60006020820190508181036000830152613032816129e4565b9050919050565b60006040820190508181036000830152613052816129e4565b905081810360208301526130668184612928565b905092915050565b6000602082019050818103600083015261308781612a1b565b9050919050565b600060408201905081810360008301526130a781612a1b565b905081810360208301526130bb8184612928565b905092915050565b600060208201905081810360008301526130dc81612a52565b9050919050565b600060408201905081810360008301526130fc81612a52565b905081810360208301526131108184612928565b905092915050565b6000602082019050818103600083015261313181612a89565b9050919050565b6000604082019050818103600083015261315181612a89565b905081810360208301526131658184612928565b905092915050565b6000602082019050818103600083015261318681612ac0565b9050919050565b600060408201905081810360008301526131a681612ac0565b905081810360208301526131ba8184612928565b905092915050565b600060208201905081810360008301526131db81612af7565b9050919050565b600060408201905081810360008301526131fb81612af7565b9050818103602083015261320f8184612928565b905092915050565b6000602082019050818103600083015261323081612b2e565b9050919050565b6000604082019050818103600083015261325081612b2e565b905081810360208301526132648184612928565b905092915050565b6000602082019050818103600083015261328581612b65565b9050919050565b600060408201905081810360008301526132a581612b65565b905081810360208301526132b98184612928565b905092915050565b600060208201905081810360008301526132da81612b9c565b9050919050565b600060408201905081810360008301526132fa81612b9c565b9050818103602083015261330e8184612928565b905092915050565b6000602082019050818103600083015261332f81612bd3565b9050919050565b6000604082019050818103600083015261334f81612bd3565b905081810360208301526133638184612928565b905092915050565b6000602082019050818103600083015261338481612c0a565b9050919050565b600060408201905081810360008301526133a481612c0a565b905081810360208301526133b88184612928565b905092915050565b600060208201905081810360008301526133d981612c41565b9050919050565b600060408201905081810360008301526133f981612c41565b9050818103602083015261340d8184612928565b905092915050565b6000604082019050818103600083015261342e81612c41565b9050818103602083015261344281846128f2565b905092915050565b6000602082019050818103600083015261346381612c78565b9050919050565b6000604082019050818103600083015261348381612c78565b905081810360208301526134978184612928565b905092915050565b600060208201905081810360008301526134b881612caf565b9050919050565b600060408201905081810360008301526134d881612caf565b905081810360208301526134ec8184612928565b905092915050565b6000602082019050818103600083015261350d81612ce6565b9050919050565b6000604082019050818103600083015261352d81612ce6565b905081810360208301526135418184612928565b905092915050565b6000602082019050818103600083015261356281612d1d565b9050919050565b6000604082019050818103600083015261358281612d1d565b905061359160208301846128e3565b92915050565b600060208201905081810360008301526135b081612d54565b9050919050565b600060408201905081810360008301526135d081612d54565b90506135df60208301846128e3565b92915050565b600060208201905081810360008301526135ff8184612d8b565b905092915050565b6000604051905081810181811067ffffffffffffffff8211171561362a57600080fd5b8060405250919050565b600067ffffffffffffffff82111561364b57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561367757600080fd5b601f19601f8301169050602081019050919050565b60008160005260206000209050919050565b600081519050919050565b600081519050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006136e9826136b4565b9050919050565b60006136fb826136b4565b9050919050565b600061370d826136b4565b9050919050565b600061371f826136b4565b9050919050565b6000819050919050565b600061373b826136b4565b9050919050565b600061374d826136b4565b9050919050565b82818337600083830152505050565b60005b83811015613781578082015181840152602081019050613766565b83811115613790576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a723058200cae143051d294ac8653a8fdc256ebefb79ebd81d77b3920c2cbc268efb076c36c6578706572696d656e74616cf50037"};

    public static final String BINARY = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", BINARY_ARRAY);

    public static final String[] SM_BINARY_ARRAY = {"60806040526040805190810160405280601281526020017f636f6d70616e795f696e666f5f74657374310000000000000000000000000000815250600190805190602001906200005192919062000178565b503480156200005f57600080fd5b506110016000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c92a780160016040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016200011b91906200044a565b602060405180830381600087803b1580156200013657600080fd5b505af11580156200014b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200017191908101906200023d565b50620004b4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001bb57805160ff1916838001178555620001ec565b82800160010185558215620001ec579182015b82811115620001eb578251825591602001919060010190620001ce565b5b509050620001fb9190620001ff565b5090565b6200022491905b808211156200022057600081600090555060010162000206565b5090565b90565b6000620002358251620004aa565b905092915050565b6000602082840312156200025057600080fd5b6000620002608482850162000227565b91505092915050565b600081546001811660008114620002895760018114620002aa57620002ef565b607f600283041680865260ff198316602087015260408601935050620002ef565b60028204808652602086019550620002c28562000498565b60005b82811015620002e657815481890152600182019150602081019050620002c5565b80880195505050505b505092915050565b600060dd82527f6163636f756e742c2070617373776f72642c2062616c616e63652c206163636f60208301527f756e745f7374617475732c206e616d652c2072656769737465725f6163636f7560408301527f6e742c72656769737465725f69642c70686f6e652c636f6d70616e795f63726560608301527f6174655f646174652c556e69666965645f736f6369616c5f6372656469745f6360808301527f6f64652c6372656174655f646174652c207570646174655f646174652c636f6d60a08301527f70616e795f627573696e6573732c636f6d70616e795f696e74726f647563652c60c08301527f636f6d70616e795f616464726573732c636f6d70616e795f656d61696c00000060e083015261010082019050919050565b6000600282527f69640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000606082019050818103600083015262000466818462000269565b905081810360208301526200047b8162000413565b905081810360408301526200049081620002f7565b905092915050565b60008160005260206000209050919050565b6000819050919050565b6137e180620004c46000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635b325d78146100725780636d889797146100af578063801ec2c5146100ec57806386b733f914610129578063895cb86f14610166575b600080fd5b34801561007e57600080fd5b5061009960048036036100949190810190612802565b610191565b6040516100a691906135e5565b60405180910390f35b3480156100bb57600080fd5b506100d660048036036100d19190810190612884565b611234565b6040516100e39190612f5a565b60405180910390f35b3480156100f857600080fd5b50610113600480360361010e9190810190612884565b611291565b6040516101209190612f5a565b60405180910390f35b34801561013557600080fd5b50610150600480360361014b9190810190612802565b611ec1565b60405161015d9190612f5a565b60405180910390f35b34801561017257600080fd5b5061017b6121a4565b6040516101889190612f75565b60405180910390f35b610199612242565b60008060006101a6612242565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359a48b6560016040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016102209190612ff7565b602060405180830381600087803b15801561023a57600080fd5b505af115801561024e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061027291908101906127b0565b95508573ffffffffffffffffffffffffffffffffffffffff1663c74f8caf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156102d857600080fd5b505af11580156102ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103109190810190612735565b94508473ffffffffffffffffffffffffffffffffffffffff1663ae763db5896040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161036791906134b1565b600060405180830381600087803b15801561038157600080fd5b505af1158015610395573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663d8ac595789876040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016103f0929190612f97565b602060405180830381600087803b15801561040a57600080fd5b505af115801561041e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610442919081019061275e565b9350600091505b8373ffffffffffffffffffffffffffffffffffffffff1663d3e9af5a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104ad57600080fd5b505af11580156104c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104e591908101906127d9565b821215611226578373ffffffffffffffffffffffffffffffffffffffff16633dd2b614836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016105419190612f5a565b602060405180830381600087803b15801561055b57600080fd5b505af115801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105939190810190612787565b90508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016105e89061345c565b600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061063f9190810190612843565b83600001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161069a906132b3565b600060405180830381600087803b1580156106b457600080fd5b505af11580156106c8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506106f19190810190612843565b83602001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161074c90613019565b600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506107a39190810190612843565b83604001819052508073ffffffffffffffffffffffffffffffffffffffff16634900862e6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016107fe90613111565b602060405180830381600087803b15801561081857600080fd5b505af115801561082c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061085091908101906127d9565b8360600181815250508073ffffffffffffffffffffffffffffffffffffffff16634900862e6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016108ac9061306e565b602060405180830381600087803b1580156108c657600080fd5b505af11580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108fe91908101906127d9565b8360800181815250508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161095a90613590565b600060405180830381600087803b15801561097457600080fd5b505af1158015610988573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506109b19190810190612843565b8360a001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610a0c906134e6565b600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610a639190810190612843565b8360c001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610abe90613407565b600060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610b159190810190612843565b8360e001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040","518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610b709061325e565b600060405180830381600087803b158015610b8a57600080fd5b505af1158015610b9e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610bc79190810190612843565b8361010001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c239061353b565b600060405180830381600087803b158015610c3d57600080fd5b505af1158015610c51573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610c7a9190810190612843565b8361012001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610cd6906130bc565b600060405180830381600087803b158015610cf057600080fd5b505af1158015610d04573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610d2d9190810190612843565b8361014001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610d899061325e565b600060405180830381600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610de09190810190612843565b8361010001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610e3c906131b4565b600060405180830381600087803b158015610e5657600080fd5b505af1158015610e6a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610e939190810190612843565b8361016001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610eef906133b2565b600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610f469190810190612843565b8361018001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610fa29061335d565b600060405180830381600087803b158015610fbc57600080fd5b505af1158015610fd0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610ff99190810190612843565b836101a001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161105590613308565b600060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506110ac9190810190612843565b836101c001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161110890613209565b600060405180830381600087803b15801561112257600080fd5b505af1158015611136573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061115f9190810190612843565b836101e001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016111bb9061315f565b600060405180830381600087803b1580156111d557600080fd5b505af11580156111e9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506112129190810190612843565b836102000181905250816001019150610449565b829650505050505050919050565b6000806112448360000151611ec1565b905061124f83611291565b90507fd72ab475a08df05fbd4f7f8cb4db1ad9dbdc26f54437fa6794acd97357779d2a816040516112809190612f5a565b60405180910390a180915050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359a48b6560016040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161130e9190612ff7565b602060405180830381600087803b15801561132857600080fd5b505af115801561133c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061136091908101906127b0565b92508273ffffffffffffffffffffffffffffffffffffffff16635887ab246040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156113c657600080fd5b505af11580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113fe9190810190612787565b91508173ffffffffffffffffffffffffffffffffffffffff16631a391cb486600001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611459919061347c565b600060405180830381600087803b15801561147357600080fd5b505af1158015611487573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb486602001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016114e491906132d3565b600060405180830381600087803b1580156114fe57600080fd5b505af1158015611512573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb486604001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161156f9190613039565b600060405180830381600087803b15801561158957600080fd5b505af115801561159d573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def4269886606001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016115fa9190613131565b600060405180830381600087803b15801561161457600080fd5b505af1158015611628573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def4269886608001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611685919061308e565b600060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48660a001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161171091906135b0565b600060405180830381600087803b15801561172a57600080fd5b505af115801561173e573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48660c001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161179b9190613506565b600060405180830381600087803b1580156117b557600080fd5b505af11580156117c9573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48660e001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118269190613427565b600060405180830381600087803b15801561184057600080fd5b505af1158015611854573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661010001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118b2919061327e565b600060405180830381600087803b1580156118cc57600080fd5b505af11580156118e0573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661012001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161193e919061355b565b600060405180830381600087803b15801561195857600080fd5b505af115801561196c573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661014001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016119ca91906130dc565b600060405180830381600087803b1580156119e457600080fd5b505af11580156119f8573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661010001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611a56919061327e565b600060405180830381600087803b158015611a7057600080fd5b505af1158015611a84573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661016001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611ae291906131d4565b600060405180830381600087803b158015611afc57600080fd5b505af1158015611b10573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661018001516040518263","ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611b6e91906133d2565b600060405180830381600087803b158015611b8857600080fd5b505af1158015611b9c573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb4866101a001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611bfa919061337d565b600060405180830381600087803b158015611c1457600080fd5b505af1158015611c28573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb4866101c001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611c869190613328565b600060405180830381600087803b158015611ca057600080fd5b505af1158015611cb4573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb4866101e001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d129190613229565b600060405180830381600087803b158015611d2c57600080fd5b505af1158015611d40573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661020001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611d9e919061317f565b600060405180830381600087803b158015611db857600080fd5b505af1158015611dcc573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff16634c6f30c08660000151846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611e2b929190612fc7565b602060405180830381600087803b158015611e4557600080fd5b505af1158015611e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e7d91908101906127d9565b90507fdfc533ec2b52797a1229dc2495dbd3f4948f7c4c982ec077ad9d80810ec5c1f981604051611eae9190612f5a565b60405180910390a1809350505050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359a48b6560016040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611f3e9190612ff7565b602060405180830381600087803b158015611f5857600080fd5b505af1158015611f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f9091908101906127b0565b92508273ffffffffffffffffffffffffffffffffffffffff1663c74f8caf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611ff657600080fd5b505af115801561200a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061202e9190810190612735565b91508173ffffffffffffffffffffffffffffffffffffffff1663ae763db5866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161208591906134b1565b600060405180830381600087803b15801561209f57600080fd5b505af11580156120b3573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166309ff42f086846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161210e929190612f97565b602060405180830381600087803b15801561212857600080fd5b505af115801561213c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061216091908101906127d9565b90507fe7769b56c2afa8e40381956f76b91d9ec19c34c0a81791702fdcae68e35a7271816040516121919190612f5a565b60405180910390a1809350505050919050565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561223a5780601f1061220f5761010080835404028352916020019161223a565b820191906000526020600020905b81548152906001019060200180831161221d57829003601f168201915b505050505081565b6102206040519081016040528060608152602001606081526020016060815260200160008152602001600081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b60006122d382516136de565b905092915050565b60006122e782516136f0565b905092915050565b60006122fb8251613702565b905092915050565b600061230f8251613714565b905092915050565b60006123238235613726565b905092915050565b60006123378251613726565b905092915050565b600082601f830112151561235257600080fd5b813561236561236082613634565b613607565b9150808252602083016020830185838301111561238157600080fd5b61238c838284613754565b50505092915050565b600082601f83011215156123a857600080fd5b81356123bb6123b682613660565b613607565b915080825260208301602083018583830111156123d757600080fd5b6123e2838284613754565b50505092915050565b600082601f83011215156123fe57600080fd5b815161241161240c82613660565b613607565b9150808252602083016020830185838301111561242d57600080fd5b612438838284613763565b50505092915050565b6000610220828403121561245457600080fd5b61245f610220613607565b9050600082013567ffffffffffffffff81111561247b57600080fd5b6124878482850161233f565b600083015250602082013567ffffffffffffffff8111156124a757600080fd5b6124b38482850161233f565b602083015250604082013567ffffffffffffffff8111156124d357600080fd5b6124df8482850161233f565b60408301525060606124f384828501612317565b606083015250608061250784828501612317565b60808301525060a082013567ffffffffffffffff81111561252757600080fd5b6125338482850161233f565b60a08301525060c082013567ffffffffffffffff81111561255357600080fd5b61255f8482850161233f565b60c08301525060e082013567ffffffffffffffff81111561257f57600080fd5b61258b8482850161233f565b60e08301525061010082013567ffffffffffffffff8111156125ac57600080fd5b6125b88482850161233f565b6101008301525061012082013567ffffffffffffffff8111156125da57600080fd5b6125e68482850161233f565b6101208301525061014082013567ffffffffffffffff81111561260857600080fd5b6126148482850161233f565b6101408301525061016082013567ffffffffffffffff81111561263657600080fd5b6126428482850161233f565b6101608301525061018082013567ffffffffffffffff81111561266457600080fd5b6126708482850161233f565b610180830152506101a082013567ffffffffffffffff81111561269257600080fd5b61269e8482850161233f565b6101a0830152506101c082013567ffffffffffffffff8111156126c057600080fd5b6126cc8482850161233f565b6101c0830152506101e082013567ffffffffffffffff8111156126ee57600080fd5b6126fa8482850161233f565b6101e08301525061020082013567ffffffffffffffff81111561271c57600080fd5b6127288482850161233f565b6102008301525092915050565b60006020828403121561274757600080fd5b6000612755848285016122c7565b91505092915050565b60006020828403121561277057600080fd5b600061277e848285016122db565b91505092915050565b60006020828403121561279957600080fd5b60006127a7848285016122ef565b91505092915050565b6000602082840312156127c257600080fd5b60006127d084828501612303565b91505092915050565b6000602082840312156127eb57600080fd5b60006127f98482850161232b565b91505092915050565b60006020828403121561281457600080fd5b600082013567ffffffffffffffff81111561282e57600080fd5b61283a84828501612395565b91505092915050565b60006020828403121561285557600080fd5b600082015167ffffffffffffffff81111561286f57600080fd5b61287b848285016123eb565b91505092915050565b60006020828403121561289657600080fd5b600082013567ffffffffffffffff8111156128b057600080fd5b6128bc84828501612441565b91505092915050565b6128ce81613730565b82525050565b6128dd81613742565b82525050565b6128ec816136d4565b82525050565b60006128fd826136a9565b808452612911816020860160208601613763565b61291a81613796565b602085010191505092915050565b60006129338261369e565b808452612947816020860160208601613763565b61295081613796565b602085010191505092915050565b60008154600181166000811461297b576001811461299b576129dc565b607f600283041680865260ff1983166020870152604086019350506129dc565b600282048086526020860195506129b18561368c565b60005b828110156129d3578154818901526001820191506020810190506129b4565b80880195505050505b505092915050565b6000600882527f70617373776f72640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600e82527f6163636f756e745f7374617475730000000000000000000000000000000000006020830152604082019050919050565b6000601a82527f556e69666965645f736f6369616c5f6372656469745f636f64650000000000006020830152604082019050919050565b6000600782527f62616c616e6365000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600d82527f636f6d70616e795f656d61696c000000000000000000000000000000000000006020830152604082019050919050565b6000600b82527f6372656174655f646174650000000000000000000000000000000000000000006020830152604082019050919050565b6000600f82527f636f6d70616e","795f6164647265737300000000000000000000000000000000006020830152604082019050919050565b6000600582527f70686f6e650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600782527f6163636f756e74000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000601182527f636f6d70616e795f696e74726f647563650000000000000000000000000000006020830152604082019050919050565b6000601082527f636f6d70616e795f627573696e657373000000000000000000000000000000006020830152604082019050919050565b6000600b82527f7570646174655f646174650000000000000000000000000000000000000000006020830152604082019050919050565b6000600b82527f72656769737465725f69640000000000000000000000000000000000000000006020830152604082019050919050565b6000600282527f69640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000601082527f72656769737465725f6163636f756e74000000000000000000000000000000006020830152604082019050919050565b6000601382527f636f6d70616e795f6372656174655f64617465000000000000000000000000006020830152604082019050919050565b6000600482527f6e616d65000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610220830160008301518482036000860152612da98282612928565b91505060208301518482036020860152612dc38282612928565b91505060408301518482036040860152612ddd8282612928565b9150506060830151612df260608601826128e3565b506080830151612e0560808601826128e3565b5060a083015184820360a0860152612e1d8282612928565b91505060c083015184820360c0860152612e378282612928565b91505060e083015184820360e0860152612e518282612928565b915050610100830151848203610100860152612e6d8282612928565b915050610120830151848203610120860152612e898282612928565b915050610140830151848203610140860152612ea58282612928565b915050610160830151848203610160860152612ec18282612928565b915050610180830151848203610180860152612edd8282612928565b9150506101a08301518482036101a0860152612ef98282612928565b9150506101c08301518482036101c0860152612f158282612928565b9150506101e08301518482036101e0860152612f318282612928565b915050610200830151848203610200860152612f4d8282612928565b9150508091505092915050565b6000602082019050612f6f60008301846128e3565b92915050565b60006020820190508181036000830152612f8f8184612928565b905092915050565b60006040820190508181036000830152612fb181856128f2565b9050612fc060208301846128c5565b9392505050565b60006040820190508181036000830152612fe18185612928565b9050612ff060208301846128d4565b9392505050565b60006020820190508181036000830152613011818461295e565b905092915050565b60006020820190508181036000830152613032816129e4565b9050919050565b60006040820190508181036000830152613052816129e4565b905081810360208301526130668184612928565b905092915050565b6000602082019050818103600083015261308781612a1b565b9050919050565b600060408201905081810360008301526130a781612a1b565b90506130b660208301846128e3565b92915050565b600060208201905081810360008301526130d581612a52565b9050919050565b600060408201905081810360008301526130f581612a52565b905081810360208301526131098184612928565b905092915050565b6000602082019050818103600083015261312a81612a89565b9050919050565b6000604082019050818103600083015261314a81612a89565b905061315960208301846128e3565b92915050565b6000602082019050818103600083015261317881612ac0565b9050919050565b6000604082019050818103600083015261319881612ac0565b905081810360208301526131ac8184612928565b905092915050565b600060208201905081810360008301526131cd81612af7565b9050919050565b600060408201905081810360008301526131ed81612af7565b905081810360208301526132018184612928565b905092915050565b6000602082019050818103600083015261322281612b2e565b9050919050565b6000604082019050818103600083015261324281612b2e565b905081810360208301526132568184612928565b905092915050565b6000602082019050818103600083015261327781612b65565b9050919050565b6000604082019050818103600083015261329781612b65565b905081810360208301526132ab8184612928565b905092915050565b600060208201905081810360008301526132cc81612b9c565b9050919050565b600060408201905081810360008301526132ec81612b9c565b905081810360208301526133008184612928565b905092915050565b6000602082019050818103600083015261332181612bd3565b9050919050565b6000604082019050818103600083015261334181612bd3565b905081810360208301526133558184612928565b905092915050565b6000602082019050818103600083015261337681612c0a565b9050919050565b6000604082019050818103600083015261339681612c0a565b905081810360208301526133aa8184612928565b905092915050565b600060208201905081810360008301526133cb81612c41565b9050919050565b600060408201905081810360008301526133eb81612c41565b905081810360208301526133ff8184612928565b905092915050565b6000602082019050818103600083015261342081612c78565b9050919050565b6000604082019050818103600083015261344081612c78565b905081810360208301526134548184612928565b905092915050565b6000602082019050818103600083015261347581612caf565b9050919050565b6000604082019050818103600083015261349581612caf565b905081810360208301526134a98184612928565b905092915050565b600060408201905081810360008301526134ca81612caf565b905081810360208301526134de81846128f2565b905092915050565b600060208201905081810360008301526134ff81612ce6565b9050919050565b6000604082019050818103600083015261351f81612ce6565b905081810360208301526135338184612928565b905092915050565b6000602082019050818103600083015261355481612d1d565b9050919050565b6000604082019050818103600083015261357481612d1d565b905081810360208301526135888184612928565b905092915050565b600060208201905081810360008301526135a981612d54565b9050919050565b600060408201905081810360008301526135c981612d54565b905081810360208301526135dd8184612928565b905092915050565b600060208201905081810360008301526135ff8184612d8b565b905092915050565b6000604051905081810181811067ffffffffffffffff8211171561362a57600080fd5b8060405250919050565b600067ffffffffffffffff82111561364b57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561367757600080fd5b601f19601f8301169050602081019050919050565b60008160005260206000209050919050565b600081519050919050565b600081519050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006136e9826136b4565b9050919050565b60006136fb826136b4565b9050919050565b600061370d826136b4565b9050919050565b600061371f826136b4565b9050919050565b6000819050919050565b600061373b826136b4565b9050919050565b600061374d826136b4565b9050919050565b82818337600083830152505050565b60005b83811015613781578082015181840152602081019050613766565b83811115613790576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a723058208723dda18306be4584114ad4b68a9d949e99e2fd5fed6ccb56f569e143b6ace46c6578706572696d656e74616cf50037"};

    public static final String SM_BINARY = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", SM_BINARY_ARRAY);

    public static final String[] ABI_ARRAY = {"[{\"constant\":false,\"inputs\":[{\"name\":\"id\",\"type\":\"string\"}],\"name\":\"remove\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"account\",\"type\":\"string\"},{\"name\":\"password\",\"type\":\"string\"},{\"name\":\"balance\",\"type\":\"int256\"},{\"name\":\"account_status\",\"type\":\"int256\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"register_account\",\"type\":\"string\"},{\"name\":\"register_id\",\"type\":\"string\"},{\"name\":\"phone\",\"type\":\"string\"},{\"name\":\"company_create_date\",\"type\":\"string\"},{\"name\":\"Unified_social_credit_code\",\"type\":\"string\"},{\"name\":\"create_date\",\"type\":\"string\"},{\"name\":\"update_date\",\"type\":\"string\"},{\"name\":\"company_business\",\"type\":\"string\"},{\"name\":\"company_introduce\",\"type\":\"string\"},{\"name\":\"company_address\",\"type\":\"string\"},{\"name\":\"company_email\",\"type\":\"string\"}],\"name\":\"company\",\"type\":\"tuple\"}],\"name\":\"insert\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"account\",\"type\":\"string\"},{\"name\":\"password\",\"type\":\"string\"},{\"name\":\"balance\",\"type\":\"int256\"},{\"name\":\"account_status\",\"type\":\"int256\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"register_account\",\"type\":\"string\"},{\"name\":\"register_id\",\"type\":\"string\"},{\"name\":\"phone\",\"type\":\"string\"},{\"name\":\"company_create_date\",\"type\":\"string\"},{\"name\":\"Unified_social_credit_code\",\"type\":\"string\"},{\"name\":\"create_date\",\"type\":\"string\"},{\"name\":\"update_date\",\"type\":\"string\"},{\"name\":\"company_business\",\"type\":\"string\"},{\"name\":\"company_introduce\",\"type\":\"string\"},{\"name\":\"company_address\",\"type\":\"string\"},{\"name\":\"company_email\",\"type\":\"string\"}],\"name\":\"company\",\"type\":\"tuple\"}],\"name\":\"update\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"company_info\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"id\",\"type\":\"string\"}],\"name\":\"select\",\"outputs\":[{\"components\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"account\",\"type\":\"string\"},{\"name\":\"password\",\"type\":\"string\"},{\"name\":\"balance\",\"type\":\"int256\"},{\"name\":\"account_status\",\"type\":\"int256\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"register_account\",\"type\":\"string\"},{\"name\":\"register_id\",\"type\":\"string\"},{\"name\":\"phone\",\"type\":\"string\"},{\"name\":\"company_create_date\",\"type\":\"string\"},{\"name\":\"Unified_social_credit_code\",\"type\":\"string\"},{\"name\":\"create_date\",\"type\":\"string\"},{\"name\":\"update_date\",\"type\":\"string\"},{\"name\":\"company_business\",\"type\":\"string\"},{\"name\":\"company_introduce\",\"type\":\"string\"},{\"name\":\"company_address\",\"type\":\"string\"},{\"name\":\"company_email\",\"type\":\"string\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"count\",\"type\":\"int256\"}],\"name\":\"CreateResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"count\",\"type\":\"int256\"}],\"name\":\"InsertResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"count\",\"type\":\"int256\"}],\"name\":\"UpdateResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"count\",\"type\":\"int256\"}],\"name\":\"RemoveResult\",\"type\":\"event\"}]"};

    public static final String ABI = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", ABI_ARRAY);

    public static final String FUNC_REMOVE = "remove";

    public static final String FUNC_INSERT = "insert";

    public static final String FUNC_UPDATE = "update";

    public static final String FUNC_COMPANY_INFO = "company_info";

    public static final String FUNC_SELECT = "select";

    public static final Event CREATERESULT_EVENT = new Event("CreateResult", 
            Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
    ;

    public static final Event INSERTRESULT_EVENT = new Event("InsertResult", 
            Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
    ;

    public static final Event UPDATERESULT_EVENT = new Event("UpdateResult", 
            Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
    ;

    public static final Event REMOVERESULT_EVENT = new Event("RemoveResult", 
            Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
    ;

    protected CompanyInfo(String contractAddress, Client client, CryptoKeyPair credential) {
        super(getBinary(client.getCryptoSuite()), contractAddress, client, credential);
    }

    public static String getBinary(CryptoSuite cryptoSuite) {
        return (cryptoSuite.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY);
    }

    public TransactionReceipt remove(String id) {
        final Function function = new Function(
                FUNC_REMOVE, 
                Arrays.<Type>asList(new Utf8String(id)),
                Collections.<TypeReference<?>>emptyList());
        return executeTransaction(function);
    }

    public byte[] remove(String id, TransactionCallback callback) {
        final Function function = new Function(
                FUNC_REMOVE, 
                Arrays.<Type>asList(new Utf8String(id)),
                Collections.<TypeReference<?>>emptyList());
        return asyncExecuteTransaction(function, callback);
    }

    public String getSignedTransactionForRemove(String id) {
        final Function function = new Function(
                FUNC_REMOVE, 
                Arrays.<Type>asList(new Utf8String(id)),
                Collections.<TypeReference<?>>emptyList());
        return createSignedTransaction(function);
    }

    public Tuple1<String> getRemoveInput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getInput().substring(10);
        final Function function = new Function(FUNC_REMOVE, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<String>(

                (String) results.get(0).getValue()
                );
    }

    public Tuple1<BigInteger> getRemoveOutput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getOutput();
        final Function function = new Function(FUNC_REMOVE, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<BigInteger>(

                (BigInteger) results.get(0).getValue()
                );
    }

    public TransactionReceipt insert(Struct0 company) {
        final Function function = new Function(
                FUNC_INSERT, 
                Arrays.<Type>asList(company), 
                Collections.<TypeReference<?>>emptyList());
        return executeTransaction(function);
    }

    public byte[] insert(Struct0 company, TransactionCallback callback) {
        final Function function = new Function(
                FUNC_INSERT, 
                Arrays.<Type>asList(company), 
                Collections.<TypeReference<?>>emptyList());
        return asyncExecuteTransaction(function, callback);
    }

    public String getSignedTransactionForInsert(Struct0 company) {
        final Function function = new Function(
                FUNC_INSERT, 
                Arrays.<Type>asList(company), 
                Collections.<TypeReference<?>>emptyList());
        return createSignedTransaction(function);
    }

    public Tuple1<Struct0> getInsertInput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getInput().substring(10);
        final Function function = new Function(FUNC_INSERT, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Struct0>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<Struct0>(

                (Struct0) results.get(0)
                );
    }

    public Tuple1<BigInteger> getInsertOutput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getOutput();
        final Function function = new Function(FUNC_INSERT, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<BigInteger>(

                (BigInteger) results.get(0).getValue()
                );
    }

    public TransactionReceipt update(Struct0 company) {
        final Function function = new Function(
                FUNC_UPDATE, 
                Arrays.<Type>asList(company), 
                Collections.<TypeReference<?>>emptyList());
        return executeTransaction(function);
    }

    public byte[] update(Struct0 company, TransactionCallback callback) {
        final Function function = new Function(
                FUNC_UPDATE, 
                Arrays.<Type>asList(company), 
                Collections.<TypeReference<?>>emptyList());
        return asyncExecuteTransaction(function, callback);
    }

    public String getSignedTransactionForUpdate(Struct0 company) {
        final Function function = new Function(
                FUNC_UPDATE, 
                Arrays.<Type>asList(company), 
                Collections.<TypeReference<?>>emptyList());
        return createSignedTransaction(function);
    }

    public Tuple1<Struct0> getUpdateInput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getInput().substring(10);
        final Function function = new Function(FUNC_UPDATE, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Struct0>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<Struct0>(

                (Struct0) results.get(0)
                );
    }

    public Tuple1<BigInteger> getUpdateOutput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getOutput();
        final Function function = new Function(FUNC_UPDATE, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<BigInteger>(

                (BigInteger) results.get(0).getValue()
                );
    }

    public String company_info() throws ContractException {
        final Function function = new Function(FUNC_COMPANY_INFO, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}));
        return executeCallWithSingleValueReturn(function, String.class);
    }

    public Struct0 select(String id) throws ContractException {
        final Function function = new Function(FUNC_SELECT, 
                Arrays.<Type>asList(new Utf8String(id)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Struct0>() {}));
        return executeCallWithSingleValueReturn(function, Struct0.class);
    }

    public List<CreateResultEventResponse> getCreateResultEvents(TransactionReceipt transactionReceipt) {
        List<EventValuesWithLog> valueList = extractEventParametersWithLog(CREATERESULT_EVENT, transactionReceipt);
        ArrayList<CreateResultEventResponse> responses = new ArrayList<CreateResultEventResponse>(valueList.size());
        for (EventValuesWithLog eventValues : valueList) {
            CreateResultEventResponse typedResponse = new CreateResultEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.count = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public void subscribeCreateResultEvent(String fromBlock, String toBlock, List<String> otherTopics, EventCallback callback) {
        String topic0 = eventEncoder.encode(CREATERESULT_EVENT);
        subscribeEvent(ABI,BINARY,topic0,fromBlock,toBlock,otherTopics,callback);
    }

    public void subscribeCreateResultEvent(EventCallback callback) {
        String topic0 = eventEncoder.encode(CREATERESULT_EVENT);
        subscribeEvent(ABI,BINARY,topic0,callback);
    }

    public List<InsertResultEventResponse> getInsertResultEvents(TransactionReceipt transactionReceipt) {
        List<EventValuesWithLog> valueList = extractEventParametersWithLog(INSERTRESULT_EVENT, transactionReceipt);
        ArrayList<InsertResultEventResponse> responses = new ArrayList<InsertResultEventResponse>(valueList.size());
        for (EventValuesWithLog eventValues : valueList) {
            InsertResultEventResponse typedResponse = new InsertResultEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.count = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public void subscribeInsertResultEvent(String fromBlock, String toBlock, List<String> otherTopics, EventCallback callback) {
        String topic0 = eventEncoder.encode(INSERTRESULT_EVENT);
        subscribeEvent(ABI,BINARY,topic0,fromBlock,toBlock,otherTopics,callback);
    }

    public void subscribeInsertResultEvent(EventCallback callback) {
        String topic0 = eventEncoder.encode(INSERTRESULT_EVENT);
        subscribeEvent(ABI,BINARY,topic0,callback);
    }

    public List<UpdateResultEventResponse> getUpdateResultEvents(TransactionReceipt transactionReceipt) {
        List<EventValuesWithLog> valueList = extractEventParametersWithLog(UPDATERESULT_EVENT, transactionReceipt);
        ArrayList<UpdateResultEventResponse> responses = new ArrayList<UpdateResultEventResponse>(valueList.size());
        for (EventValuesWithLog eventValues : valueList) {
            UpdateResultEventResponse typedResponse = new UpdateResultEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.count = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public void subscribeUpdateResultEvent(String fromBlock, String toBlock, List<String> otherTopics, EventCallback callback) {
        String topic0 = eventEncoder.encode(UPDATERESULT_EVENT);
        subscribeEvent(ABI,BINARY,topic0,fromBlock,toBlock,otherTopics,callback);
    }

    public void subscribeUpdateResultEvent(EventCallback callback) {
        String topic0 = eventEncoder.encode(UPDATERESULT_EVENT);
        subscribeEvent(ABI,BINARY,topic0,callback);
    }

    public List<RemoveResultEventResponse> getRemoveResultEvents(TransactionReceipt transactionReceipt) {
        List<EventValuesWithLog> valueList = extractEventParametersWithLog(REMOVERESULT_EVENT, transactionReceipt);
        ArrayList<RemoveResultEventResponse> responses = new ArrayList<RemoveResultEventResponse>(valueList.size());
        for (EventValuesWithLog eventValues : valueList) {
            RemoveResultEventResponse typedResponse = new RemoveResultEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.count = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public void subscribeRemoveResultEvent(String fromBlock, String toBlock, List<String> otherTopics, EventCallback callback) {
        String topic0 = eventEncoder.encode(REMOVERESULT_EVENT);
        subscribeEvent(ABI,BINARY,topic0,fromBlock,toBlock,otherTopics,callback);
    }

    public void subscribeRemoveResultEvent(EventCallback callback) {
        String topic0 = eventEncoder.encode(REMOVERESULT_EVENT);
        subscribeEvent(ABI,BINARY,topic0,callback);
    }

    public static CompanyInfo load(String contractAddress, Client client, CryptoKeyPair credential) {
        return new CompanyInfo(contractAddress, client, credential);
    }

    public static CompanyInfo deploy(Client client, CryptoKeyPair credential) throws ContractException {
        return deploy(CompanyInfo.class, client, credential, getBinary(client.getCryptoSuite()), "");
    }

    public static class Struct0 extends DynamicStruct {
        public String id;

        public String account;

        public String password;

        public BigInteger balance;

        public BigInteger account_status;

        public String name;

        public String register_account;

        public String register_id;

        public String phone;

        public String company_create_date;

        public String Unified_social_credit_code;

        public String create_date;

        public String update_date;

        public String company_business;

        public String company_introduce;

        public String company_address;

        public String company_email;

        public Struct0(Utf8String id, Utf8String account, Utf8String password, Int256 balance, Int256 account_status, Utf8String name, Utf8String register_account, Utf8String register_id, Utf8String phone, Utf8String company_create_date, Utf8String Unified_social_credit_code, Utf8String create_date, Utf8String update_date, Utf8String company_business, Utf8String company_introduce, Utf8String company_address, Utf8String company_email) {
            super(id,account,password,balance,account_status,name,register_account,register_id,phone,company_create_date,Unified_social_credit_code,create_date,update_date,company_business,company_introduce,company_address,company_email);
            this.id = id.getValue();
            this.account = account.getValue();
            this.password = password.getValue();
            this.balance = balance.getValue();
            this.account_status = account_status.getValue();
            this.name = name.getValue();
            this.register_account = register_account.getValue();
            this.register_id = register_id.getValue();
            this.phone = phone.getValue();
            this.company_create_date = company_create_date.getValue();
            this.Unified_social_credit_code = Unified_social_credit_code.getValue();
            this.create_date = create_date.getValue();
            this.update_date = update_date.getValue();
            this.company_business = company_business.getValue();
            this.company_introduce = company_introduce.getValue();
            this.company_address = company_address.getValue();
            this.company_email = company_email.getValue();
        }

        public Struct0(String id, String account, String password, BigInteger balance, BigInteger account_status, String name, String register_account, String register_id, String phone, String company_create_date, String Unified_social_credit_code, String create_date, String update_date, String company_business, String company_introduce, String company_address, String company_email) {
            super(new Utf8String(id),new Utf8String(account),new Utf8String(password),new Int256(balance),new Int256(account_status),new Utf8String(name),new Utf8String(register_account),new Utf8String(register_id),new Utf8String(phone),new Utf8String(company_create_date),new Utf8String(Unified_social_credit_code),new Utf8String(create_date),new Utf8String(update_date),new Utf8String(company_business),new Utf8String(company_introduce),new Utf8String(company_address),new Utf8String(company_email));
            this.id = id;
            this.account = account;
            this.password = password;
            this.balance = balance;
            this.account_status = account_status;
            this.name = name;
            this.register_account = register_account;
            this.register_id = register_id;
            this.phone = phone;
            this.company_create_date = company_create_date;
            this.Unified_social_credit_code = Unified_social_credit_code;
            this.create_date = create_date;
            this.update_date = update_date;
            this.company_business = company_business;
            this.company_introduce = company_introduce;
            this.company_address = company_address;
            this.company_email = company_email;
        }
    }

    public static class CreateResultEventResponse {
        public TransactionReceipt.Logs log;

        public BigInteger count;
    }

    public static class InsertResultEventResponse {
        public TransactionReceipt.Logs log;

        public BigInteger count;
    }

    public static class UpdateResultEventResponse {
        public TransactionReceipt.Logs log;

        public BigInteger count;
    }

    public static class RemoveResultEventResponse {
        public TransactionReceipt.Logs log;

        public BigInteger count;
    }
}
